const { default: store } = require("../../utils/store")
const { controlShowPage } = require("../../utils/utils")

const pageOptions = {
	// 页面数据
	data: {
		isFirstOnShow: true, // 是否为首次执行onShow
		pageType: "portrait", // 可取值portrait（人像面）和emblem（国徽面）
		permissionToAccessCamera: true, // 是否允许访问摄像头
		showCamera: true, // 调用onHide钩子隐藏页面时把相机销毁，onShow钩子显示页面时重新创建相机，解决用户更改授权时相机不显示的问题
		photoBase64: "", // 拍照后的生成的照片base64
		showPage: false, // 是否显示页面，用于微信审核
	},
	// 页面载入时
	onLoad(e) {
		this.init(e)
	},
	// 页面初始化
	init(e) {
		const pageType = e.pageType
		this.setData({
			pageType,
		})
		if (pageType === "portrait") {
			wx.setNavigationBarTitle({
				title: "身份证人像面",
			})
		} else if (pageType === "emblem") {
			wx.setNavigationBarTitle({
				title: "身份证国徽面",
			})
		}
	},
	// 页面准备好时
	onReady() {},
	// 页面显示时
	async onShow() {
		this.setData({
			showCamera: true,
			showPage: await controlShowPage(),
		})
	},
	// 页面隐藏时
	onHide() {
		this.setData({
			showCamera: false,
		})
	},
	// 页面卸载时
	onUnload() {},
	// 下拉页面时
	onPullDownRefresh() {},
	// 到达页面底部时
	onReachBottom() {},
	// 页面滚动时
	onPageScroll() {},
	// 分享时，注：onShareAppMessage不能为async异步函数，会导致不能及时取得返回值，使得分享设置无效
	onShareAppMessage() {
		/* const title = ''
    const path = ''
    const imageUrl = ``

    return {
      title,
      path,
      imageUrl,
    } */
	},
	//用户拒绝访问相机
	refuseToAccessCamera() {
		this.setData({
			permissionToAccessCamera: false,
		})
	},
	//相机初始化完成时触发
	handleCameraInitDone() {
		this.setData({
			permissionToAccessCamera: true,
		})
	},
	//发起授权
	// startAuthorization() {
	// 	wx.authorize({
	// 		scope: "scope.camera",
	// 		success: (res) => {},
	// 		fail: (err) => {
	// 			console.log(err, "err")
	// 		},
	// 	})
	// },
	//拍照
	takePhoto() {
		if (this.data.permissionToAccessCamera === false) {
			wx.showToast({
				title: "无访问相机权限，请先授权",
				icon: "none",
			})
			return
		}
		const ctx = wx.createCameraContext()
		ctx.takePhoto({
			quality: "high",
			success: (res) => {
				//转成base64
				wx.getFileSystemManager().readFile({
					filePath: res.tempImagePath,
					encoding: "base64",
					success: (res) => {
						const base64String = res.data
						if (this.data.pageType === "portrait") {
							store.sfz_front.set(base64String)
						} else if (this.data.pageType === "emblem") {
							store.sfz_back.set(base64String)
						}
						wx.navigateBack()
					},
				})

				//截取图片
				// wx.createSelectorQuery()
				// 	.select("#myCanvas")
				// 	.fields({ node: true, size: true }, (res1) => {
				// 		const canvas = res1.node
				// 		const ctx2 = canvas.getContext("2d")
				// 		let img = canvas.createImage()
				// 		img.src = res.tempImagePath
				// 		img.onload = (e) => {
				// 			console.log(img.width, "img.width")
				// 			console.log(img.height, "img.height")
				// 			let c_x = img.width * 0.0707
				// 			let c_w = img.width * 0.8587
				// 			let c_y = img.height * 0.219
				// 			let c_h = img.height * 0.562
				// 			//截取图片指定部分并绘制到canvas
				// 			ctx2.drawImage(
				// 				img,
				// 				c_x,
				// 				c_y,
				// 				c_w,
				// 				c_h,
				// 				0,
				// 				0,
				// 				300,
				// 				300 * (c_h / c_w),
				// 			) //width固定为300,按比例计算出height
				// 			//将canvas内容保存为图片
				// 			wx.canvasToTempFilePath({
				// 				canvas: canvas,
				// 				width: 300,
				// 				height: 300 * (c_h / c_w),
				// 				fileType: "png",
				// 				success: (res2) => {
				// 					wx.saveImageToPhotosAlbum({
				// 						//将图片保存到本地相册
				// 						filePath: res2.tempFilePath,
				// 					})
				// 					const imgPath = String(res2.tempFilePath)
				// 					//上传到接口
				// 					// this.uploadimg(imgPath)
				// 				},
				// 				fail: (res) => {
				// 					console.log(res)
				// 				},
				// 			})
				// 		}
				// 		img.onerror = (e) => {
				// 			console.error("err:", e)
				// 		}
				// 	})
				// 	.exec()
			},
			fail: (err) => {
				console.log(err, "err")
			},
		})
	},
}

Page(pageOptions)
